Completed
Push — master ( a31174...af3b49 )
by Antonio
10s
created

T_IDENTIFIER ➔ ... ➔ JsonGenerator   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 1
rs 10
c 1
b 0
f 0
cc 1
nc 1
nop 2
1
define(
2
    [
3
        'flagbit/JsonGenerator/Storage',
4
        'flagbit/JsonGenerator/Input',
5
        'flagbit/JsonGenerator/Renderer'
6
    ],
7
    function(JsonGeneratorStorage, JsonGeneratorInput, JsonGeneratorRenderer) {
8
9
        /**
10
         * @class
11
         * @param {(HTMLElement|HTMLTextAreaElement)} $element
12
         */
13
        var JsonGenerator = function($element, $types) {
14
15
            var $source = new JsonGeneratorStorage();
16
            var $input = new JsonGeneratorInput($element);
17
            var $renderer = new JsonGeneratorRenderer($input.isEditable(), $element.parentNode, $types);
18
19
            $input.observer.watch('load', function() {
20
                $source.write($input.read());
21
                $renderer.render($source.read());
22
            });
23
24
            $renderer.observer.watch('persist', function() {
25
                $source.write($renderer.read());
26
            });
27
28
            $renderer.observer.watch('save', function() {
29
                $input.write($source.read());
30
            });
31
32
            $input.hide();
33
            $input.observer.notify('load');
34
        };
35
36
        return JsonGenerator;
37
    }
38
);